package com.labot.webapp.action;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.labot.model.Factura;
import com.labot.model.User;
import com.labot.model.audit.Audit;

/**
 * Action for facilitating User Management feature.
 */
public class AuditAction extends BaseAction {
    private static final long serialVersionUID = 6776548938712115191L;
    
    private List<Audit> auditList = new ArrayList<Audit>();
    /**
     * form
     */
    private Date fecha;
    private Integer importe;
    private String nombre;
    private Integer puntos;



	/**
     * Default: just returns "success"
     *
     * @return "success"
     */
    public String execute() {
        return SUCCESS;
    }
    
    public String cancel() {
    	return CANCEL;
    }

    public String cargarCliente() {
    	try{
    		if(nombre!=null && nombre.trim() !="" ){
		    	User cliente=userManager.getUserByUsername(nombre);
		        if(cliente ==null) {
		        	super.addActionWarning("No se encontro el Cliente");
		        }
		        nombre=cliente.getFullName();
    		}
    	}catch (Exception e){
        	super.addActionWarning("No se encontro el Cliente");

    	}
    	
        return SUCCESS;
    }
    
    public String guardarFactura() {
    	Integer puntoASumar;
    	try{
    	User cliente=userManager.getUserByUsername(nombre);

    	puntoASumar=cliente.getPuntos();
        cliente.setPuntos(puntoASumar+puntos);
        userManager.save(cliente);
        Factura fact =new Factura();
        fact.setFecha(new Date());
        fact.setImporte(importe);
        fact.setPuntosguardados(puntos);
        serviceFacturas.save(fact);
    	super.addActionMessage("Se cargo en forma correcta la Factura");
    	}catch(Exception e){
        	super.addActionWarning("No se pudo cargar su solicitud");
    		return ERROR; 
    	}
        
        
        return SUCCESS;
    }

	public List<Audit> getAuditList() {
		return auditList;
	}


	public Date getFecha() {
		return fecha;
	}

	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}

	public Integer getImporte() {
		return importe;
	}

	public void setImporte(Integer importe) {
		this.importe = importe;
	}

	public Integer getPuntos() {
		return puntos;
	}

	public void setPuntos(Integer puntos) {
		this.puntos = puntos;
	}
    public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	

}
